import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);
        int n = reader.nextInt();       //读取点的数量
        double r = reader.nextDouble();  //读取圆的半径
        Point[] ps = new Point[n];   //定义点的数组
        for (int i = 0; i < n; i++) {
            ps[i] = new Point(reader.nextDouble(), reader.nextDouble());  //创建每个点对象
        }
        double dist = 0.0;
        int j;
        //求点之间的距离之和
        for (j = 0; j < n - 1; j++) {
            dist += ps[j].dist(ps[j + 1]);
        }
        dist += ps[j].dist(ps[0]);
        //累加圆的周长
        Cricle c = new Cricle(r);
        dist += c.length();
        //输出计算的长度
        System.out.printf("%.2f\n", dist);
    }
}

/* 请在这里填写答案 */

class Point{
    private double x;
    private double y;

    public Point(double nextDouble, double nextDouble1) {
        this.x=nextDouble;
        this.y=nextDouble1;
    }
    public double dist(Point p){
        return Math.sqrt((this.x-p.x)*(this.x-p.x)+(this.y-p.y)*(this.y-p.y));
    }
}

class Cricle{
    private double r;
    public Cricle(double r){
        this.r=r;
    }
    public double length(){
        return Math.PI*2*this.r;
    }
}

